home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 031-040 / amok40 / flanz / flanz.dok < prev    next >
Text File  |  1993-11-04  |  7KB  |  194 lines

  1. Dokumentation zu
  2.  
  3.  
  4.             Flanz - Evolution
  5.  
  6.                             von Markus Peuckert
  7.  
  8.  
  9. COPYRIGHT
  10.     Dieses Programmpaket mit SourceCode ist Public-Domain. Es darf nur
  11. komplett weitergegeben werden. Kommerzielle Nutzung nur in Rücksprache
  12. mit mir (Markus Peuckert).
  13.  
  14.  
  15.             Markus Peuckert
  16.             Schützenstraße 50
  17.             3550 Marburg/Lahn
  18.             Tel.: 06421/681688
  19.  
  20. BEINHALTET:
  21.     Flanz
  22.     FlGad.Def
  23.     FlGad.Mod
  24.     IntuiSup.Def
  25.     IntuiSup.Mod
  26.     und deren Kompilate
  27.     Flanz.DOK
  28.     C0
  29.     C1
  30.     C2
  31.     C3
  32.  
  33. NÄHERES:
  34.     Dies ist ein Programm zur Erzeugung von L-Systemen, die 1968 von dem
  35. dänischen Biologen und Mathematiker Aristid Lindenmeyer entwickelt wurden und
  36. Grammatiken und Regeln zur Erzeugung von Zeichenketten darstellen. Diese
  37. Zeichenketten sind nun in der Lage, Pflanzen (Gräser, Bäume) zu simulieren.
  38. Lediglich vier verschiedene Buchstaben sind dazu notwendig diese Systeme zu
  39. entwickeln:
  40.  
  41.                 0, 1, [, ]
  42.  
  43.     Dabei geht man davon aus, daß jeder Buchstabe durch eine Zeichenkette
  44. aus wieder diesen Buchstaben ersetzt wird. Als Beispiel sollen folgende Regeln
  45. dienen:
  46.  
  47.     0 -> 1[0]1[0]0
  48.     1 -> 11
  49.     [ -> [
  50.     ] -> ]
  51.  
  52.     Die Null wird durch die hinter dem Pfeil stehende Zeichenkette ersetzt
  53. usw. Genauso wird mit den anderen Zeichen verfahren. Nimmt man nun die so
  54. erzeugte neue Zeichenkette und wendet die Regeln nocheinmal an, so bekommt man
  55. eine noch längere Zeichenkette. Je mehr Generationen man so erzeugt, umso
  56. komplexere Zeichenketten (Pflanzen) bekommt man. Die Anzahl der Generationen ist
  57. somit nur vom Speicher begrenzt, bzw. von der Konfiguration des Feldes, in dem
  58. sie abgespeichert wird.
  59.  
  60.     Das Programm ist so ausgelegt, daß beliebige ursprüngliche
  61. Zeichenketten eingegeben werden können. Ebenso können die Regeln beliebig
  62. abgeändert, verlängert oder verkürzt werden.
  63.  
  64. Zur Handhabung des Programms:
  65.     Zuerst muß eine Datei geschrieben werden, die die ursprüngliche
  66. Zeichenkette und die Regeln enthält, z.B.:
  67.  
  68. 0 [ 0 ];
  69. 1 [ 0 ] 1 [ 0 ] 0;
  70. 1 1;
  71. [;
  72. ];
  73.  
  74.     Zur besseren Lesbarkeit sollten die einzelnen Zeichen durch Leerstellen
  75. getrennt werden.
  76.     Das Programm geht davon aus, daß in der ersten Zeile die Ursprungskette
  77. steht, die zu allererst ersetzt wird.
  78. In der zweiten Zeile steht dann die Zeichenkette, die für die "0" eingesetzt
  79. wird.
  80. In der dritten Zeile steht die Zeichenkette, die für die "1" eingesetzt wird,
  81. usw.
  82.     Jede Zeile, bzw. Regel muß mit einem Semikolon abgeschlossen werden,
  83. damit das Programm erkennt, wo die nächste Regel beginnt. Diese Dateien
  84. können mit einem Editor Ihrer Wahl geschrieben werden und müssen im
  85. ASCII-Format auf einem Datenträger vorliegen.    Einige Dateien sind anbeigelegt!
  86.  
  87.     Die Länge der Eingabedatei ist auf 50 Zeichen beschränkt, d.h., alle
  88. Zeilen zusammen dürfen nicht mehr als 50 Zeichen enthalten. Wie Sie
  89. allerdings die einzelnen Zeilen aufteilen (Zeichen pro Zeile), ist Ihnen
  90. selbst überlassen.
  91.  
  92. Dabei haben die einzelnen Zeichen folgende Bedeutung:
  93.     0 -> Ast
  94.     1 -> Ast
  95.     [ -> Verzweigung, nach rechts oder links, immer abwechselnd
  96.     ] -> Blatt und Ende des Astes
  97.  
  98.     Das Programm kann vom CLI oder der Workbench gestartet werden, wobei
  99. man darauf achten sollte den Stack (mindestens 30000) nicht zu klein zu wählen,
  100. da das Programm das Zeichnen der "Flanze" (weils keine echte ist) rekursiv
  101. vornimmt und bei hoher Generationszahl (abhängig auch von der Gestaltung der
  102. Eingabedatei) mit einem "Stack Overflow" abbricht. Am besten soviel wie möglich
  103. Stack reservieren. Wer es sich leisten kann ruhig 200000.
  104.  
  105.  
  106. Es erscheint nun ein eigener Screen mit zwei Windows:
  107.     Einem Zeichenwindow für das Gewächs und einem Steuerwindow.
  108.  
  109.  
  110. Nun die Erklärung der einzelnen Gadgets und Funktionen:
  111.  
  112. Chromosom:
  113.     Das Oberste Gadget ist ein Stringgadget in dem die Eingabedatei mit den
  114. Regeln (ab hier Chromosom genannt) spezifiziert wird. Ist der richtige
  115. Dateiname eingeben, kann man weiterarbeiten. Ansonsten erscheint die Meldung
  116. "Datei..." im Steuerfenster. Hat man noch keine Datei angegeben und drückt
  117. versonnen auf den Gadgets herum, erscheint ebenfalls eine Meldung, daß noch
  118. kein Chromosom vorhanden ist. Das Programm testet allerdings nicht, ob Ihre
  119. Datei sinnvolle Daten enthält (genau vier Zeilen und alle mit Semikolon
  120. abgeschlossen und nur gültige Zeichen und alles zusammen nicht länger als
  121. 50 Zeichen). Einige Beispieldateien sind beigelegt (C0, C1, C2, C3).
  122.  
  123.  
  124. Generation:
  125.     Hier gibt man die Anzahl der Generationen ein. Je höher die Zahl,
  126. desto komplexer die Flanze.
  127.  
  128.  
  129. Noxendosis:
  130.     Diese Zahl gibt die Anzahl der Mutationen an, die pro Flanze in den
  131. letzten beiden Generationen erzeugt werden. Eine Noxe ist ein schädlicher
  132. Einfluß auf einen Organismus (Strahlen, Gifte, Trauma). Normalerweise ist
  133. diese Zahl Null. Probieren Sie ruhig einige höhere Dosen aus und lassen
  134. Sie sich überraschen, wie die Flanze dann aussieht.
  135.  
  136.  
  137. Astwinkel:
  138.     Der Astwinkel erklärt sich fast von selbst. Verschieden Werte lassen
  139. das Objekt sehr unterschiedlich aussehen. Voreinstellt sind 25 Grad.
  140. Probieren Sie mal Winkel von 45, 90 oder 120 Grad aus.
  141.  
  142.  
  143. Skalierung:
  144.     Ist die Flanze mal über den Bildschirmrand hinausgewachsen oder zu
  145. klein. So kann man hier einen Faktor eingeben, der zu einem Exponenten
  146. addiert wird, der die Länge der einzelnen Abschnitte der Flanze bestimmt.
  147. (Vorsicht! Skalierung nimmt exponential zu!). Danach können Sie sich
  148. die neu bestimmte Größe der Flanze mit Drücken des "Zeich"-Gadgets anschauen.
  149.  
  150.  
  151. Wachs:
  152.     Um nun endlich ein Ergebnis zu sehen, drücke man das "Wachs"-Gadget
  153. (für Wachsen lassen).
  154.  
  155.  
  156. Zeich:
  157.     Lediglich nocheinmal zeichnen der Flanze, z.B., nach vorheriger
  158. Neuskalierung.
  159.  
  160.  
  161. Ende:
  162.     Ende.
  163.  
  164.  
  165. ZUSATZ:
  166.     Wenn Sie bei aktivem Steuerfenster die rechte Maustaste drücken,
  167. verlagert sich das Steuerfenster hinter das Zeichenfenster und stört
  168. den Anblick der Flanze nicht mehr. Nochmal rechte Maustaste -> wieder nach
  169. vorn. Oder das "Depth"-Gadget des Zeichenfensters benutzen.
  170.  
  171.  
  172. Anhang für Freaks, Programmierer und Speichermillionäre:
  173.  
  174.     Wer will kann die Konstanten im Hauptmodul WIDTH und HEIGHT auf
  175. WIDTH = 704 und HEIGHT = 564 heraufsetzen und bekommt dann einen OverscanScreen.
  176. Allerdings sollte man vorher die Datei "devs:system-configuration" entsprechend
  177. ändern (mittels eines Patchprogrammes), damit die Maus richtig mitspielt.
  178.  
  179.     Die Größe des Feldes für das Einlesen des Chromosoms ist auf
  180. 50 Zeichen beschränkt (MaxGen = 50).
  181. Wem das nicht reicht, kann es höher setzen. Mir allerdings reichts und es
  182. scheint mehr als ausreichend für die meisten (alle) Versuche.
  183.  
  184.     Die Anzahl der Aminosäuren (MaxAS = 40000) ist für die Größe
  185. des Speicherfeldes der Generation des Gewächses zuständig. Diese Zahl ist
  186. ausgelegt für Systeme mit nur 512 kB und ist manchmal nicht genug.
  187. Wer genügend Speicherplatz besitzt, kann wesentlich mehr reservieren
  188. (MaxAS = 70000) und hat dann uneingeschränkte Möglichkeiten.
  189.  
  190.  
  191.     Dann noch viel Spaß damit
  192.  
  193.                     Markus
  194.